Ну, во-первых я вынес инициализацию и закрытие WinSock в отдельные процедуры. Общий код программы теперь выглядит так.
void StartWinSock();
void StopWinSock();
void WaitSocket();
void main()
{
StartWinSock();
WaitSocket();
StopWinSock();
}
WaitSocket создан на перспективу, то есть я буду создавать ожидающий сокет. А пока в нем только функция получения имени хоста. Вот как она выглядит
void WaitSocket()
{
char chInfo[64];
if (gethostname(chInfo,sizeof(chInfo)))
{
printf("Not local host\n");
return;
}
else
{
printf(chInfo);
printf(" GetHostName OK !!!!!\n");
}
}
Главное в этом коде функция gethostname:
int gethostname ( char FAR * name, int namelen );
В эту функцию передается буфер и его длина для возврата имени. При отсутствии ошибок эта функция вернет 0.
Я опробовал этот код под Windows 98, вот что я получил в ответ.
Microsoft(R) Windows 98 (C)Copyright Microsoft Corp 1981-1998. C:\WINDOWS>d: D:\PROJECT\ClientServer\Winsock2\Debug>winsock2 Winsock initial OK !!!! Jana GetHostName OK !!!!! Cleapir Good !!!!!Jana - это у меня настроенный удаленный доступ к сети (Internet :-))